929eecd0c707bc443ec9d7ffca956520d13d9d04,polls/tool/src/java/org/sakaiproject/poll/tool/validators/VoteValidator.java,VoteValidator,validate,#Object#Errors#,65

Before Change


	if (votes.getOptionsSelected() == null && votes.getOption() == null && poll.getMinOptions()>0) {
		logger.debug("there seems to be no vote on this poll");  
		String errStr = Integer.valueOf(poll.getMinOptions()).toString();
		errors.reject("error_novote.voteCollection", new Object[] {errStr}, "no vote");
		  return;
	} else if (votes.getOptionsSelected() == null && votes.getOption() == null && poll.getMinOptions()==0) {
		//to do we need to map to somthing special

After Change


	if (votes.getOptionsSelected() == null && votes.getOption() == null && poll.getMinOptions()>0) {
		logger.debug("there seems to be no vote on this poll");  
		String errStr = Integer.valueOf(poll.getMinOptions()).toString();
		if (!errors.hasFieldErrors("error_novote")) {
			errors.reject("error_novote", new Object[] {errStr}, "no vote");
		}
		else {
			errors.reject("error_novote.voteCollection", new Object[] {errStr}, "no vote");
		}
		return;
	} else if (votes.getOptionsSelected() == null && votes.getOption() == null && poll.getMinOptions()==0) {
		//to do we need to map to somthing special
		options.add("0");
	}
	
	
	if (votes.getOptionsSelected() == null && votes.getOption() != null) {
		  options.add(votes.getOption());
	} else if (votes.getOptionsSelected() != null){
		for (int i = 0;i < votes.getOptionsSelected().length;i++){
			options.add(votes.getOptionsSelected()[i]);
		}
	}
	  
	  logger.debug("options selected is " + options.size());
	  // the exact choise case
	  
	  if (pollVoteManager.userHasVoted(poll.getPollId()) && poll.getLimitVoting()) {
		  	if (!errors.hasFieldErrors("vote_hasvoted")) {
		  		errors.reject("vote_hasvoted","has voted");
		  	}
		  	else {
		  		errors.reject("vote_hasvoted.voteCollection","has voted");